package EJB;

//import java.util.ArrayList;
import java.util.List;

import javax.annotation.PostConstruct;
import javax.ejb.Stateful;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;

import Modelo.Usuario;

/**
 * Session Bean implementation class EjbArrUsuarios
 */
@Stateless(name="EJBLocal", mappedName="EJBLocal")
public class EjbArrUsuarios implements EjbArrUsuariosLocal {
	
	@PersistenceContext(unitName="JPADB")
	private EntityManager entityManager;
	
	
	List<Usuario> arrUsuarios;
	
	@PostConstruct
	public void datosDePrueba(){
//		arrUsuarios.add(new Usuario("1-1","Franco Camilo","Gonzalez","Los Lunes"));
	}
	
    public EjbArrUsuarios() {
        // TODO Auto-generated constructor stub
    }

	public void agregar(Usuario u) {
//		arrUsuarios.add(u);
		entityManager.persist(u);
		
	}

	//borra el registro u endonde el rut coincida
	public void eliminar(String rut) {
//		arrUsuarios.remove(indice);
		Usuario u = entityManager.find(Usuario.class, rut);
		entityManager.remove(u);
	}

	//a traves del entityManager.find, modifica los campos del rut especificado
	public void modificar(Usuario userNuevo) {
		Usuario userAntiguo = entityManager.find(Usuario.class, userNuevo.getRut());
		userAntiguo.setNombres(userNuevo.getNombres());
		userAntiguo.setApellidos(userNuevo.getApellidos());
		userAntiguo.setDireccion(userNuevo.getDireccion());
		
	}
	
	public List<Usuario> obtenerArreglo(){
		//Consulta a la base de datos y ordena por apellido
		 Query q = entityManager.createQuery("Select u from Usuario u order by Apellidos asc");
		
//		@SuppressWarnings("unchecked")
		arrUsuarios = (List<Usuario>)q.getResultList();
		return arrUsuarios;
	}
		

}


